package cc.rengu.igas.momp.common.enums;

/**
 * 营销交易码、服务、描述枚举
 *
 * @author Jinan Liu
 * @version 1.0.0
 * @date 2020/5/15
 */
public enum MompTxnNumEnum {

    /**
     * 减免类活动列表查询
     */
    QUERY_MO_MC_LIST("M00MO001", "QueryMoneyOffMcListService", "减免类活动列表查询"),
    /**
     * 减免类活动详情查询
     */
    QUERY_MO_MC_DETAIL("M00MO002", "QueryMoneyOffMcDetailInfoService", "减免类活动详情查询"),
    /**
     * 减免类活动信息编辑
     */
    EDIT_MO_MC_DETAIL("M00MO003", "EditMoneyOffMcDetailInfoService", "减免类活动信息编辑"),
    /**
     * 减免类活动信息管理
     */
    MANAGE_MO_MC_INFO("M00MO004", "ManageMoneyOffMcService", "减免类活动信息管理"),
    /**
     * 减免类活动发布
     */
    PUBLISH_MO_MC("M00MO005", "PublishMoneyOffMcService", "减免类活动发布"),
    /**
     * 卡券类活动列表查询
     */
    QUERY_CP_MC_LIST("M00MO006", "QueryCouponMcListService", "卡券类活动列表查询"),
    /**
     * 卡券类活动详情查询
     */
    QUERY_CP_MC_DETAIL("M00MO007", "QueryCouponMcDetailInfoService", "卡券类活动详情查询"),
    /**
     * 卡券类活动信息编辑
     */
    EDIT_CP_MC_DETAIL("M00MO008", "EditCouponMcDetailInfoService", "卡券类活动信息编辑"),
    /**
     * 卡券类活动信息管理
     */
    MANAGE_CP_MC_INFO("M00MO009", "ManageCouponMcService", "卡券类活动信息管理"),
    /**
     * 卡券类活动发布
     */
    PUBLISH_CP_MC("M00MO010", "PublishCouponMcService", "卡券类活动发布"),
    /**
     * 手续费减免类活动列表查询
     */
    QUERY_MFD_MC_LIST("M00MO011", "QueryMchntFeeDiscountMcListService", "手续费减免类活动列表查询"),
    /**
     * 手续费减免类活动详情查询
     */
    QUERY_MFD_MC_DETAIL("M00MO012", "QueryMchntFeeDiscountMcDetailInfoService", "手续费减免类活动详情查询"),
    /**
     * 手续费减免类活动信息编辑
     */
    EDIT_MFD_MC_DETAIL("M00MO013", "EditMchntFeeDiscountMcDetailInfoService", "手续费减免类活动信息编辑"),
    /**
     * 手续费减免类活动信息管理
     */
    MANAGE_MFD_MC_INFO("M00MO014", "ManageMchntFeeDiscountMcService", "手续费减免类活动信息管理"),
    /**
     * 手续费减免类活动发布
     */
    PUBLISH_MFD_MC("M00MO015", "PublishMchntFeeDiscountMcService", "手续费减免类活动发布"),
    /**
     * 代理商分润类活动列表查询
     */
    QUERY_APS_MC_LIST("M00MO016", "QueryAgentProfitSharingMcListService", "代理商分润类活动列表查询"),
    /**
     * 代理商分润类活动详情查询
     */
    QUERY_APS_MC_DETAIL("M00MO017", "QueryAgentProfitSharingMcDetailInfoService", "代理商分润类活动详情查询"),
    /**
     * 代理商分润类活动信息编辑
     */
    EDIT_APS_MC_DETAIL("M00MO018", "EditAgentProfitSharingMcDetailInfoService", "代理商分润类活动信息编辑"),
    /**
     * 代理商分润类活动信息管理
     */
    MANAGE_APS_MC_INFO("M00MO019", "ManageAgentProfitSharingMcService", "代理商分润类活动信息管理"),
    /**
     * 代理商分润类活动发布
     */
    PUBLISH_APS_MC("M00MO020", "PublishAgentProfitSharingMcService", "代理商分润类活动发布"),
    /**
     * 收银员返现类活动列表查询
     */
    QUERY_CCB_MC_LIST("M00MO021", "QueryCashierCashbackMcListService", "收银员返现类活动列表查询"),
    /**
     * 收银员返现类活动详情查询
     */
    QUERY_CCB_MC_DETAIL("M00MO022", "QueryCashierCashbackMcDetailInfoService", "收银员返现类活动详情查询"),
    /**
     * 收银员返现类活动信息编辑
     */
    EDIT_CCB_MC_DETAIL("M00MO023", "EditCashierCashbackMcDetailInfoService", "收银员返现类活动信息编辑"),
    /**
     * 收银员返现类活动信息管理
     */
    MANAGE_CCB_MC_INFO("M00MO024", "ManageCashierCashbackMcService", "收银员返现类活动信息管理"),
    /**
     * 收银员返现类活动发布
     */
    PUBLISH_CCB_MC_INFO("M00MO025", "PublishCashierCashbackMcService", "收银员返现类活动发布"),
    /**
     * 商户营销活动管理
     */
    MAMAGE_MCHNT_MC_INFO("M00MO026", "MchntMcManageService", "商户营销活动管理"),
    /**
     * 商户营销活动发布
     */
    MCHNT_MC_PUBLISH("M00MO027", "MchntMcPublishService", "商户营销活动发布"),
    /**
     * 商户参与联和营销活动
     */
    MCHNT_JOIN_JOINT_MC("M00MO028", "MchntJoinJointMcService", "商户参与联和营销活动"),
    /**
     * 收银员收款账号配置
     */
    MANAGE_CASHIER_ACCOUNT("M00MO029", "CashierAccountManageService", "收银员收款账号配置"),
    /**
     * 营销活动列表查询
     */
    QUERY_MC_LIST("M00MO030", "QueryMcListInfoService", "营销活动列表查询"),
    /**
     * 商户查询营销活动详情
     */
    MCHNT_QUERY_MC_DETAIL_INFO("M00MO031", "MchntQueryMcDetailInfoService", "商户查询营销活动详情"),
    /**
     * 收银员信息查询
     */
    QUERY_CASHIER_INFO("M00MO032", "QueryCashierInfoService", "收银员信息查询"),
    /**
     * 收银员参与收银员返现活动
     */
    CASHIER_JOIN_CASHIER_CASHBACK_MC("M00MO033", "CashierJoinCashierCashBackService", "收银员参与收银员返现活动"),
    /**
     * 对客类活动添加商户
     */
    ADD_MCHNT_TO_MC("M00MO034", "UnderwayMcAddMchntService", "对客类活动添加商户"),
    /**
     * 商户营销活动资金打款成功通知
     */
    MCHNT_MC_ACCOUNT_RECHARGE("M00MO035", "MchntMcAccountRechargeNotificationService", "商户营销活动资金打款成功通知"),

    /**
     * 商户参与银行对商户手续费减免活动列表查询
     */
    QUERY_MCHNT_JOIN_MCHNT_FEE_DISCOUNT("M00MO036", "QueryMchntJoinMchntFeeDiscountService", "商户参与银行对商户手续费减免活动列表查询"),
    /**
     * 进行中银行对商户手续费减免活动列表查询
     */
    QUERY_PROGRESSING_MCHNT_FEE_DISCOUNT_LIST("M00MO037", "QueryProgressingMchntFeeDiscountListService", "进行中银行对商户手续费减免活动列表查询"),
    /**
     * 编辑商户参与银行对商户手续费减免活动
     */
    EDIT_MCHNT_JOIN_MCHNT_FEE_DISCOUNT("M00MO038", "EditMchntJoinMchntFeeDiscountService", "编辑商户参与银行对商户手续费减免活动"),

    /**
     * 营销活动商户用户列表查询
     */
    QUERY_MC_MER_USER_LIST("M00MO039", "QueryMcMerUserListService", "营销活动商户用户列表查询"),
    /**
     * 机构列表查询
     */
    QUERY_ORG_LIST("M00MO040", "QueryOrgListService", "机构列表信息查询"),
    /**
     * 营销活动批量上传商户
     */
    EDIT_MC_MER_LIST("M00MO041", "EditMcMerListService", "营销活动批量上传商户"),
    /**
     * 营销活动商户列表查询
     */
    QUERY_MC_MER_LIST("M00MO042", "QueryMcMerListService", "营销活动商户列表查询"),

    /**
     * 卡券领取
     */
    CLAIM_COUPON("P01MO001", "ClaimCouponService", "卡券领取"),
    /**
     * 卡券核销
     */
    REDEEM_COUPON("P01MO002", "RedeemCouponService", "卡券核销"),
    /**
     * (合并)支付
     */
    COMBO_PAYMENT("P01MO003", "ComboPaymentService", "(合并)支付"),
    /**
     * 手续费优惠
     */
    FEE_DISCOUNT("P01MO004", "ComboMchntFeeDiscountService", "手续费优惠"),
    /**
     * (合并)支付冲正
     */
    COMBO_PAYMENT_REVERSAL("P02MO001", "ComboPaymentReversalService", "(合并)支付冲正"),
    /**
     * 手续费优惠冲正
     */
    FEE_DISCOUNT_REVERSAL("P02MO002", "ComboMchntFeeDiscountReversalService", "手续费优惠冲正"),
    /**
     * 卡券退回
     */
    RETURN_COUPON("P04MO001", "ReturnCouponService", "卡券退回"),
    /**
     * (合并)支付退货
     */
    COMBO_PAYMENT_REFUND("P04MO002", "ComboPaymentRefundService", "(合并)支付退货"),
    /**
     * 手续费优惠回退试算
     */
    TRIAL_FEE_DISCOUNT_REFUND("P04MO003", "ComboMchntFeeDiscountTrialRefundService", "手续费优惠回退试算"),
    /**
     * 手续费优惠回退
     */
    FEE_DISCOUNT_REFUND("P04MO004", "ComboMchntFeeDiscountRefundService", "手续费优惠回退"),
    /**
     * 交易调账
     */
    TXN_DATA_REGULATION("P08MO001", "TxnDataRegulationService", "交易调账"),
    /**
     * 卡券信息查询
     */
    QUERY_COUPON_DETAIL("T00MO001", "QueryCouponInfoService", "卡券信息查询"),
    /**
     * 收银员返现类活动返现明细查询
     */
    QUERY_CASHIER_CASHBACK_DETAIL_BY_BANK("T00MO002", "QueryCashbackToCashierDetailService", "收银员返现类活动返现明细查询"),
    /**
     * 会员信息查询
     */
    QUERY_MEMBER_INFO("T00MO003", "MemberInfoQueryService", "会员信息查询"),
    /**
     * 会员明细信息查询
     */
    QUERY_MEMBER_DETAIL_INFO("T00MO004", "MemberDetailInfoQueryService", "会员明细信息查询"),
    /**
     * 会员卡券信息查询
     */
    QUERY_MEMBER_COUPON("T00MO005", "MemberCouponQueryService", "会员卡券信息查询"),
    /**
     * 支付前可优惠信息查询
     */
    AVAIL_DISCOUNT_PRE_QUERY("T00MO006", "PrePaymentAvailableDiscountInfoQueryService", "支付前可优惠信息查询"),
    /**
     * 支付成功可优惠信息查询
     */
    AVAIL_DISCOUNT_AFTER_QUERY("T00MO007", "PostPaymentAvailableDiscountInfoQueryService", "支付成功可优惠信息查询"),
    /**
     * 银行对客类营销活动统计报表
     */
    BANK_TO_CLIENT_MC_STAT_QUERY("T00MO008", "BankToClientMcStatQueryService", "银行对客类营销活动统计报表"),
    /**
     * 商户对客类营销活动统计报表
     */
    MCHNT_TO_CLIENT_MC_STAT_QUERY("T00MO009", "MchntToClientMcStatQueryService", "商户对客类营销活动统计报表"),
    /**
     * 商户手续费优惠信息统计报表
     */
    MCHNT_FEE_DISCOUNT_DETAIL("T00MO010", "MchntFeeDiscountDetailService", "商户手续费优惠信息统计报表"),
    /**
     * 收银员返现明细查询
     */
    QUERY_CASHIER_CASHBACK_DETAIL("T00MO011", "QueryCashierCashbackDetailService", "收银员返现明细查询"),
    /**
     * 收银员返现积分规则查询
     */
    CASHIER_CASHBACK_BONUS_RULE_QUERY("T00MO012", "QueryCashierCashbackBonusRuleService", "收银员返现积分规则查询"),
    /**
     * 法人机构营销活动账号查询
     */
    QUERY_INSTITUTION_MC_ACCOUNT("T00MO013", "QueryInstitutionMcAccountInfoService", "法人机构营销活动账号查询"),
    /**
     * 交易调账结果查询
     */
    QUERY_TXN_REGULATION_STATUS("T00MO014", "QueryTxnRegulationResultService", "交易调账结果查询"),
    /**
     * 外部渠道卡券类营销活动列表查询
     */
    QUERY_MCLIST_WITHDETIAL_INFO("T00MO015", "QueryMcListWithDetialInfoService", "外部渠道卡券类营销活动列表查询"),
    /**
     * 用户卡券领取
     */
    CLAIM_COUPON_OUTCHANNEL("P01MO005", "ClaimCouponServiceOutChannel", "用户卡券领取"),
    /**
     * 用户卡券查询
     */
    QUERY_COUPONINFO_BYCUSTOMER("T00MO016", "QueryCouponInfoByCustomerService", "用户卡券查询"),
    /**
     * 收银台支付前可优惠信息查询
     */
    OPMS_AVAIL_DISCOUNT_PRE_QUERY("T00MO017", "OpmsPrePaymentAvailableDiscountInfoQueryService", "收银台支付前可优惠信息查询"),
    /**
     * 商户当前周期手续费优惠限额查询
     */
    QUERY_MCHNTFEETXNAMT_LIMIT("T00MO018", "QueryMchntFeeTxnAmtLimitService", "商户当前周期手续费优惠限额查询"),
    /**
     * 商户当前周期手续费优惠限额修改
     */
    EDIT_MCHNTFEETXNAMT_LIMIT("M00MO040", "EditMchntFeeTxnAmtLimitService", "商户当前周期手续费优惠限额修改"),
    /**
     * 商户当前周期手续费可优惠额度查询
     */
    QUERY_MCHNTFEEDISCOUNT_LIMIT("T00MO019", "QueryMchntFeeDiscountLimitService", "商户当前周期手续费剩余可优惠额度查询"),
    ;

    /**
     * 交易码
     */
    private String txnNum;
    /**
     * 服务名
     */
    private String service;
    /**
     * 描述
     */
    private String desc;

    MompTxnNumEnum(String txnNum, String service, String desc) {
        this.txnNum = txnNum;
        this.service = service;
        this.desc = desc;
    }

    public String getTxnNum() {
        return txnNum;
    }

    public String getService() {
        return service;
    }

    public String getDesc() {
        return desc;
    }

    public static MompTxnNumEnum getInstance(String txnNum) {
        switch (txnNum) {
            case "M00MO001":
                return QUERY_MO_MC_LIST;
            case "M00MO002":
                return QUERY_MO_MC_DETAIL;
            case "M00MO003":
                return EDIT_MO_MC_DETAIL;
            case "M00MO004":
                return MANAGE_MO_MC_INFO;
            case "M00MO005":
                return PUBLISH_MO_MC;
            case "M00MO006":
                return QUERY_CP_MC_LIST;
            case "M00MO007":
                return QUERY_CP_MC_DETAIL;
            case "M00MO008":
                return EDIT_CP_MC_DETAIL;
            case "M00MO009":
                return MANAGE_CP_MC_INFO;
            case "M00MO010":
                return PUBLISH_CP_MC;
            case "M00MO011":
                return QUERY_MFD_MC_LIST;
            case "M00MO012":
                return QUERY_MFD_MC_DETAIL;
            case "M00MO013":
                return EDIT_MFD_MC_DETAIL;
            case "M00MO014":
                return MANAGE_MFD_MC_INFO;
            case "M00MO015":
                return PUBLISH_MFD_MC;
            case "M00MO016":
                return QUERY_APS_MC_LIST;
            case "M00MO017":
                return QUERY_APS_MC_DETAIL;
            case "M00MO018":
                return EDIT_APS_MC_DETAIL;
            case "M00MO019":
                return MANAGE_APS_MC_INFO;
            case "M00MO020":
                return PUBLISH_APS_MC;
            case "M00MO021":
                return QUERY_CCB_MC_LIST;
            case "M00MO022":
                return QUERY_CCB_MC_DETAIL;
            case "M00MO023":
                return EDIT_CCB_MC_DETAIL;
            case "M00MO024":
                return MANAGE_CCB_MC_INFO;
            case "M00MO025":
                return PUBLISH_CCB_MC_INFO;
            case "M00MO026":
                return MAMAGE_MCHNT_MC_INFO;
            case "M00MO027":
                return MCHNT_MC_PUBLISH;
            case "M00MO028":
                return MCHNT_JOIN_JOINT_MC;
            case "M00MO029":
                return MANAGE_CASHIER_ACCOUNT;
            case "M00MO030":
                return QUERY_MC_LIST;
            case "M00MO031":
                return MCHNT_QUERY_MC_DETAIL_INFO;
            case "M00MO032":
                return QUERY_CASHIER_INFO;
            case "M00MO033":
                return CASHIER_JOIN_CASHIER_CASHBACK_MC;
            case "M00MO034":
                return ADD_MCHNT_TO_MC;
            case "P01MO001":
                return CLAIM_COUPON;
            case "P01MO002":
                return REDEEM_COUPON;
            case "P01MO003":
                return COMBO_PAYMENT;
            case "P01MO004":
                return FEE_DISCOUNT;
            case "P01MO005":
                return MCHNT_MC_ACCOUNT_RECHARGE;
            case "P02MO001":
                return COMBO_PAYMENT_REVERSAL;
            case "P02MO002":
                return FEE_DISCOUNT_REVERSAL;
            case "P04MO001":
                return RETURN_COUPON;
            case "P04MO002":
                return COMBO_PAYMENT_REFUND;
            case "P04MO003":
                return TRIAL_FEE_DISCOUNT_REFUND;
            case "P04MO004":
                return FEE_DISCOUNT_REFUND;
            case "P08MO001":
                return TXN_DATA_REGULATION;
            case "T00MO001":
                return QUERY_COUPON_DETAIL;
            case "T00MO002":
                return QUERY_CASHIER_CASHBACK_DETAIL_BY_BANK;
            case "T00MO003":
                return QUERY_MEMBER_INFO;
            case "T00MO004":
                return QUERY_MEMBER_DETAIL_INFO;
            case "T00MO005":
                return QUERY_MEMBER_COUPON;
            case "T00MO006":
                return AVAIL_DISCOUNT_PRE_QUERY;
            case "T00MO007":
                return AVAIL_DISCOUNT_AFTER_QUERY;
            case "T00MO008":
                return BANK_TO_CLIENT_MC_STAT_QUERY;
            case "T00MO009":
                return MCHNT_TO_CLIENT_MC_STAT_QUERY;
            case "T00MO010":
                return MCHNT_FEE_DISCOUNT_DETAIL;
            case "T00MO011":
                return QUERY_CASHIER_CASHBACK_DETAIL;
            case "T00MO012":
                return CASHIER_CASHBACK_BONUS_RULE_QUERY;
            case "T00MO013":
                return QUERY_INSTITUTION_MC_ACCOUNT;
            case "T00MO014":
                return QUERY_TXN_REGULATION_STATUS;
            default:
                return null;
        }
    }
}
